home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
081-090
/
amok82
/
plot
/
source
/
plotzeichnen2.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
23KB
|
607 lines
(***********************************************************************
:Program. PlotZeichnen2.mod
:Author. Stefan Köhle
:Address. Erhardtstr. 10
W-7033 Herrenberg
:Phone. 07032/5146
:shortcut.
:Version. 1.0
:Date. 15.11.92
:Copyright. nix
:Language. Modula-II.
:Translator. M2Amiga 4.107d
:Imports. PlotInit,MyMathlib
:UpDate.
:Contents.
:Remark.
**********************************************************************)
IMPLEMENTATION MODULE PlotZeichnen2;
FROM MyMathLib IMPORT FFPToInt ;
FROM PlotInit IMPORT PlotBasePtr ;
FROM SYSTEM IMPORT ADR ;
FROM GraphicsL IMPORT AreaMove,AreaDraw,AreaEnd,Text,
SetAPen,SetDrMd,Move,Draw ;
FROM GraphicsD IMPORT jam1;
FROM String IMPORT Length ;
FROM GfxMacros IMPORT SetDrPt ;
PROCEDURE KastenZeichnen(VAR Pb: PlotBasePtr) ; (***************************)
BEGIN
SetAPen(Pb^.Rp,1) ;
SetDrMd(Pb^.Rp,jam1) ;
IF Pb^.GrosseBitmap THEN
Move(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ; (* P1 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+720) ; (* P2 *)
Draw(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+1152); (* P3 *)
Draw(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+432) ; (* P4 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ; (* P1 *)
Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0) ; (* P5 *)
Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0+720); (* P6 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+720) ; (* P2 *)
Move(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+1152); (* P3 *)
Draw(Pb^.Rp,Pb^.KastenX0+720,Pb^.KastenY0+1152); (* P7 *)
Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0+720); (* P6 *)
ELSE
Move(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ; (* P1 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+240) ; (* P2 *)
Draw(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+384) ; (* P3 *)
Draw(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+144) ; (* P4 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ; (* P1 *)
Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0) ; (* P5 *)
Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0+240) ; (* P6 *)
Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+240) ; (* P2 *)
Move(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+384); (* P3 *)
Draw(Pb^.Rp,Pb^.KastenX0+240,Pb^.KastenY0+384) ; (* P7 *)
Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0+240) ; (* P6 *)
END (* IF *) ;
END KastenZeichnen ;
PROCEDURE XAchseZeichnen(VAR Pb: PlotBasePtr) ; (************************)
VAR P1x,P1y,P2x: INTEGER ;
BEGIN
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
IF Pb^.GrosseBitmap THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
Pb^.A.XNull := -3*(FFPToInt(Pb^.B.XLinks*96.0/Pb^.B.DeltaX));
IF Pb^.A.XNull < 0 THEN Pb^.A.XNull := 0 ; END ;
IF Pb^.A.XNull > 1152 THEN Pb^.A.XNull := 1152 ; END ;
Pb^.A.YNull := -3*FFPToInt(Pb^.B.YHinten*48.0/Pb^.B.DeltaY) ;
IF Pb^.A.YNull < 0 THEN Pb^.A.YNull := 0 ; END ;
IF Pb^.A.YNull > 432 THEN Pb^.A.YNull := 432 ; END ;
Pb^.A.ZNull := 3*FFPToInt(Pb^.B.ZOben/Pb^.B.DeltaZ *60.0) ;
IF Pb^.A.ZNull < 0 THEN Pb^.A.ZNull := 0 ; END ;
IF Pb^.A.ZNull > 720 THEN Pb^.A.ZNull := 720 ; END ;
P1x :=Pb^.KastenX0-Pb^.A.YNull ;
P1y :=Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
P2x :=Pb^.KastenX0+1152-Pb^.A.YNull ;
Move(Pb^.Rp,P1x+1,P1y-1) ;
Draw(Pb^.Rp,P2x-1,P1y-1) ;
Move(Pb^.Rp,P1x+1,P1y+1) ;
Draw(Pb^.Rp,P2x-1,P1y+1) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,P1x,P1y) ;
Draw(Pb^.Rp,P2x,P1y) ;
ELSE
Pb^.A.XNull := -(FFPToInt(Pb^.B.XLinks*96.0/Pb^.B.DeltaX));
IF Pb^.A.XNull < 0 THEN Pb^.A.XNull := 0 ; END ;
IF Pb^.A.XNull > 384 THEN Pb^.A.XNull := 384 ; END ;
Pb^.A.YNull := -FFPToInt(Pb^.B.YHinten*48.0/Pb^.B.DeltaY) ;
IF Pb^.A.YNull < 0 THEN Pb^.A.YNull := 0 ; END ;
IF Pb^.A.YNull > 144 THEN Pb^.A.YNull := 144 ; END ;
Pb^.A.ZNull := FFPToInt(Pb^.B.ZOben/Pb^.B.DeltaZ *60.0) ;
IF Pb^.A.ZNull < 0 THEN Pb^.A.ZNull := 0 ; END ;
IF Pb^.A.ZNull > 240 THEN Pb^.A.ZNull := 240 ; END ;
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+1, (* X-Achse *)
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull-1,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+1,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull-1,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
END (* IF *) ;
END XAchseZeichnen ;
PROCEDURE YAchseZeichnen(VAR Pb: PlotBasePtr) ; (************************)
BEGIN
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
IF Pb^.GrosseBitmap THEN
Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull,
Pb^.KastenY0+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull,
Pb^.KastenY0+432+Pb^.A.ZNull) ;
ELSE
Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull,
Pb^.KastenY0+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull,
Pb^.KastenY0+144+Pb^.A.ZNull) ;
END (* IF *) ;
END YAchseZeichnen;
PROCEDURE ZAchseZeichnen(VAR Pb: PlotBasePtr) ; (************************)
VAR P1x,P1y: INTEGER ;
OK : BOOLEAN ;
str : ARRAY[0..10] OF CHAR ;
BEGIN
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
IF Pb^.GrosseBitmap THEN
P1x := Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull ; (* Spitze des Pfeils*)
P1y := Pb^.KastenY0+Pb^.A.YNull-38 ;
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
Move(Pb^.Rp,P1x-1,P1y+758) ;
Draw(Pb^.Rp,P1x-1,P1y) ;
Move(Pb^.Rp,P1x-2,P1y+758) ;
Draw(Pb^.Rp,P1x-2,P1y) ;
Move(Pb^.Rp,P1x+1,P1y+758) ;
Draw(Pb^.Rp,P1x+1,P1y) ;
Move(Pb^.Rp,P1x+2,P1y+758) ;
Draw(Pb^.Rp,P1x+2,P1y) ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,P1x-7,P1y+7) ; (* links unten *)
OK := AreaDraw(Pb^.Rp,P1x-7,P1y-3) ; (* links oben *)
OK := AreaDraw(Pb^.Rp,P1x+7,P1y-3) ; (* rechts oben *)
OK := AreaDraw(Pb^.Rp,P1x+7,P1y+7) ; (* rechts unten *)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,P1x,P1y+758) ; (* Pfeil *)
Draw(Pb^.Rp,P1x,P1y) ;
Move(Pb^.Rp,P1x-4,P1y+4) ;
Draw(Pb^.Rp,P1x,P1y) ;
Draw(Pb^.Rp,P1x+4,P1y+4) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* Kasten um Z *)
OK := AreaMove(Pb^.Rp,P1x+7,P1y+14) ; (* links unten *)
OK := AreaDraw(Pb^.Rp,P1x+7,P1y) ; (* links oben *)
OK := AreaDraw(Pb^.Rp,P1x+20,P1y) ; (* rechts oben *)
OK := AreaDraw(Pb^.Rp,P1x+20,P1y+14) ; (* rechts unten *)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
str := 'Z' ;
Move(Pb^.Rp,P1x+10,P1y+10) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END ; (* IF Beschr *)
ELSE
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* Z-Achse *)
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-1,
Pb^.KastenY0+239+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-1,
Pb^.KastenY0-16+Pb^.A.YNull) ;
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-2,
Pb^.KastenY0+239+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-2,
Pb^.KastenY0-16+Pb^.A.YNull) ;
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+1,
Pb^.KastenY0+239+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+1,
Pb^.KastenY0-16+Pb^.A.YNull) ;
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+2,
Pb^.KastenY0+239+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+2,
Pb^.KastenY0-16+Pb^.A.YNull) ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-4,
Pb^.KastenY0-16+Pb^.A.YNull+4) ; (*links unten*)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-4,
Pb^.KastenY0-16+Pb^.A.YNull-4) ; (*links oben *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+4,
Pb^.KastenY0-16+Pb^.A.YNull-4) ; (*rechts oben*)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+4,
Pb^.KastenY0-16+Pb^.A.YNull+4) ; (*rechts unten*)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
Pb^.KastenY0+239+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
Pb^.KastenY0-18+Pb^.A.YNull) ;
Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-3, (* Pfeil *)
Pb^.KastenY0-18+Pb^.A.YNull+3) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
Pb^.KastenY0-18+Pb^.A.YNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+3,
Pb^.KastenY0-18+Pb^.A.YNull+3) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* unten links*)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull-3,
Pb^.KastenY0-11+Pb^.A.YNull+3) ;
(*unten rechts *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull+9,
Pb^.KastenY0-11+Pb^.A.YNull+3) ;
(*oben rechts*)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull+9,
Pb^.KastenY0-11+Pb^.A.YNull-9) ;
(*oben links *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull-3,
Pb^.KastenY0-11+Pb^.A.YNull-9) ;
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ;
str := 'Z' ;
Move(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull,
Pb^.KastenY0-11+Pb^.A.YNull) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END (* IF Beschriftung *) ;
END (* IF *) ;
END ZAchseZeichnen;
PROCEDURE RestXAchseZeichnen(VAR Pb: PlotBasePtr) ; (*********************)
VAR P1x,P1y,P2x,P2y,P3x,P3y: INTEGER ;
OK : BOOLEAN ;
str : ARRAY[0..10] OF CHAR ;
BEGIN
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
IF Pb^.GrosseBitmap THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
P1x := Pb^.KastenX0+1152-Pb^.A.YNull ;
P1y := Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
P2x := Pb^.KastenX0+1152+33-Pb^.A.YNull ;
Move(Pb^.Rp,P1x+1,P1y+1) ;
Draw(Pb^.Rp,P2x,P1y+1) ;
Move(Pb^.Rp,P1x+1,P1y-1) ;
Draw(Pb^.Rp,P2x,P1y-1) ;
P1x :=Pb^.KastenX0+1152+18-Pb^.A.YNull+15 ;
P1y :=Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,P1x-9,P1y-7) ; (* oben links *)
OK := AreaDraw(Pb^.Rp,P1x+2,P1y-7) ; (* oben rechts*)
OK := AreaDraw(Pb^.Rp,P1x+2,P1y+7) ; (* unten rechts*)
OK := AreaDraw(Pb^.Rp,P1x-9,P1y+7) ; (* unten links*)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,P1x-32,P1y) ;
Draw(Pb^.Rp,P1x,P1y) ;
Move(Pb^.Rp,P1x-5,P1y-5) ; (* Pfeil *)
Draw(Pb^.Rp,P1x,P1y) ;
Draw(Pb^.Rp,P1x-5,P1y+5) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
OK := AreaMove(Pb^.Rp,P1x-13,P1y+21) ; (* unten links *)
OK := AreaDraw(Pb^.Rp,P1x,P1y+21) ; (* unten rechts *)
OK := AreaDraw(Pb^.Rp,P1x,P1y+8) ; (* oben rechts *)
OK := AreaDraw(Pb^.Rp,P1x-13,P1y+8) ; (* oben links *)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ;
str := 'X' ;
Move(Pb^.Rp,P1x-10,P1y+18) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END (* IF Beschriftung *) ;
ELSE
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull+1,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,Pb^.KastenX0+403-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull+1,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
Draw(Pb^.Rp,Pb^.KastenX0+403-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull-2, (* oben links *)
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-4) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull+2, (* oben rechts*)
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-4) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull+2, (* unten rechts*)
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+4) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull-2, (* unten links*)
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+4) ;
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
Move(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull, (* Pfeil *)
Pb^.KastenY0-2+Pb^.A.YNull+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull,
Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull,
Pb^.KastenY0+2+Pb^.A.YNull+Pb^.A.ZNull) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* unten links*)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull-3,
Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull+3) ;
(*unten rechts *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull+9,
Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull+3) ;
(*oben rechts*)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull+9,
Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull-9) ;
(*oben links *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull-3,
Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull-9) ;
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ;
str := 'X' ;
Move(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull,
Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END (* IF Beschriftung *) ;
END (* IF Grosse BitMap *) ;
END RestXAchseZeichnen;
PROCEDURE RestYAchseZeichnen(VAR Pb: PlotBasePtr) ; (*********************)
VAR P1x,P1y,P2x,P2y : INTEGER ;
OK : BOOLEAN ;
str : ARRAY[0..10] OF CHAR ;
BEGIN
IF Pb^.GrosseBitmap THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
P1x := Pb^.KastenX0-432+Pb^.A.XNull-15 ; (* Pfeilspitze *)
P1y := Pb^.KastenY0+432+Pb^.A.ZNull+15 ;
Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-1,
Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,P1x-1,P1y+1) ;
Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-1,
Pb^.KastenY0+432+Pb^.A.ZNull+2) ;
Draw(Pb^.Rp,P1x-1,P1y+2) ;
Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-2,
Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,P1x-2,P1y+1) ;
Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-3,
Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,P1x-3,P1y+1) ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,P1x-4,P1y-4) ; (* links oben *)
OK := AreaDraw(Pb^.Rp,P1x+10,P1y-4) ; (* rechts oben *)
OK := AreaDraw(Pb^.Rp,P1x+10,P1y+2) ; (* rechts unten *)
OK := AreaDraw(Pb^.Rp,P1x-4,P1y+2) ; (* links unten *)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull-432,
Pb^.KastenY0+Pb^.A.ZNull+432) ;
Draw(Pb^.Rp,P1x,P1y) ;
(* Pfeil *)
Move(Pb^.Rp,P1x-2,P1y-2) ;
Draw(Pb^.Rp,P1x,P1y) ;
Draw(Pb^.Rp,P1x+8,P1y-2) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* Kasten ums Y *)
OK := AreaMove(Pb^.Rp,P1x-3,P1y+16) ; (* unten links *)
OK := AreaDraw(Pb^.Rp,P1x+10,P1y+16) ; (* unten rechts *)
OK := AreaDraw(Pb^.Rp,P1x+10,P1y+4) ; (* oben rechts *)
OK := AreaDraw(Pb^.Rp,P1x-3,P1y+4) ; (* oben links *)
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ;
str := 'Y' ;
Move(Pb^.Rp,P1x,P1y+13) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END (* IF Beschriftung *) ;
ELSE
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-1,
Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-1,
Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-1,
Pb^.KastenY0+144+Pb^.A.ZNull+2) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-1,
Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-2,
Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-2,
Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-3,
Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3,
Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
(* Kasten um Pfeil *)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3, (* links oben *)
Pb^.KastenY0+152+Pb^.A.ZNull-3) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull+6, (* rechts oben *)
Pb^.KastenY0+152+Pb^.A.ZNull-3) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull+6, (* rechts unten *)
Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3, (* links unten *)
Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ; (* Vordergrundfarbe *)
Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull,
Pb^.KastenY0+144+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull,
Pb^.KastenY0+152+Pb^.A.ZNull) ;
Move(Pb^.Rp,Pb^.KastenX0-152-1+Pb^.A.XNull, (* Pfeil *)
Pb^.KastenY0+152-1+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull,
Pb^.KastenY0+152+Pb^.A.ZNull) ;
Draw(Pb^.Rp,Pb^.KastenX0-152+4+Pb^.A.XNull,
Pb^.KastenY0-1+152+Pb^.A.ZNull) ;
IF Pb^.Beschriftung THEN
SetAPen(Pb^.Rp,0) ; (* Hintergrundfarbe *)
(* Kasten ums Y *)
OK := AreaMove(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull-3, (* unten links*)
Pb^.KastenY0+164+Pb^.A.ZNull+3) ;
(*unten rechts *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull+9,
Pb^.KastenY0+164+Pb^.A.ZNull+3) ;
(*oben rechts*)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull+9,
Pb^.KastenY0+164+Pb^.A.ZNull-9) ;
(*oben links *)
OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull-3,
Pb^.KastenY0+164+Pb^.A.ZNull-9) ;
OK := AreaEnd(Pb^.Rp) ;
SetAPen(Pb^.Rp,1) ;
str := 'Y' ;
Move(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull,
Pb^.KastenY0+164+Pb^.A.ZNull) ;
Text(Pb^.Rp,ADR(str),Length(str)) ;
END (* IF Beschriftung *) ;
END (* IF GrosseBitmap *)
END RestYAchseZeichnen;
END PlotZeichnen2.